﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Distrackting.DataLayer;
using System.Collections.Generic;
using System.Collections;

namespace Distrackting.BusinessLayer
{
    public class GerirDesnivel
    {

        public static List<Desnivel> getDesnivel()
        {
            try
            {
                return dataDesnivel.getDesnivels().ToList();

            }
            catch (Exception) { throw new Exception("Não foi possível consultar a lista de desnível."); }
        }

        public void inserirDesnivel(String descricao)
        {
            try
            {
                Desnivel a = new Desnivel();
                a.descricao = descricao;
                dataDesnivel.createDesnivel(a);
            }
            catch (Exception )
            {
                throw new Exception("Não foi possível inserir o desnível.");
            }
        }

        public void apagarDesnivel(Guid cod_desnivel)
        {
            try
            {
                Desnivel a = dataDesnivel.getDesnivel(cod_desnivel);
                dataDesnivel.deleteDesnivel(a);
            }
            catch (Exception )
            {
                throw new Exception("Não foi possível remover o desnível.");
            }
        }

        public Desnivel getDesnivel(Guid cod_desnivel)
        {
            try
            {
                return dataDesnivel.getDesnivel(cod_desnivel);
            }
            catch (Exception )
            {
                throw new Exception("Não foi possível aceder ao desnível.");
            }
        }

        public Desnivel getDesnivelByDescricao(String descricao)
        {
            try
            {
                Desnivel des = new Desnivel();
                foreach (Desnivel d in dataDesnivel.getDesnivels().ToList())
                {
                    if (d.descricao == descricao) return d;
                }
                return des;
            }
            catch (Exception )
            {
                throw new Exception("Não foi possível aceder ao desnível pretendido.");
            }
        }
    }
}
